using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using M1;
using UnityEngine;

public  static  class M二合小镇
{
    private static string 皮肤种类;
    public static List<string> 转化皮肤List数据(this int n皮肤)
    {
        if (string.IsNullOrEmpty(皮肤种类))
        {
            int 种类 = Enum.GetValues(typeof(皮肤部位)).Length;
            for (int i = 0; i < 种类; i++)
            {
                皮肤种类 = 皮肤种类 + "00";
            }
        }
        
        string s数据 = n皮肤.ToString(皮肤种类);
        List<string> 每两位 = new List<string>();

        int index = 0;
        string 一个数据 = "";
        foreach (var VARIABLE in s数据)
        {
            一个数据 += VARIABLE;
            index++;
            if (index % 2 == 0)
            {
                每两位.Add(一个数据);
                一个数据 = "";
                index = 0;
            }
        }
        return 每两位;
    }

    public static List<任务Data> Get进行中的任务()
    {
        List<任务Data> res = new List<任务Data>();
        var 当前任务 = Task管理器.Instance.Get进行中的任务();
        var 任务配置 = 任务数据.Instance;
        foreach (var VARIABLE in 当前任务)
        {
            foreach (var task in VARIABLE.进行中的任务)
            {
                var 配置 = 任务配置.get任务Data(task.Id);
                if (配置 != null)
                {
                    res.Add(配置);
                }
            }
        }

        return res;
    }
    
    public static List<任务Data> Get完成的任务()
    {
        List<任务Data> res = new List<任务Data>();
        var 当前任务 = Task管理器.Instance.Get完成的任务();
        var 任务配置 = 任务数据.Instance;
        foreach (var VARIABLE in 当前任务)
        {
            foreach (var task in VARIABLE.进行中的任务)
            {
                var 配置 = 任务配置.get任务Data(task.Id);
                if (配置 != null)
                {
                    res.Add(配置);
                }
            }
        }

        return res;
    }
    
    
    public static 对话Setup所需 Get说话者(int sex,int 皮肤,int 装饰)
    {
        if (sex == 999)
        {
            var u = 二合小镇.Instance.GetUser;
            sex = u.cur性别;
            皮肤 = sex == 1? u.男性皮肤: u.女性皮肤;
            装饰 = u.装饰Data;
        }

        对话Setup所需 res = new 对话Setup所需();
        res.Sex = sex;
        
        List<string> 每两位 = 皮肤.转化皮肤List数据();
        int n头发, n上衣, n裤子;
        if (每两位.Count > 0)
        {
            int.TryParse(每两位[0], out n头发);    
        }
        else
        {
            n头发 = 0;
        }

        if (每两位.Count > 1)
        {
            int.TryParse(每两位[1], out n上衣);   
        }
        else
        {
            n上衣 = 0;
        }

        if (每两位.Count > 2)
        {
            int.TryParse(每两位[2], out n裤子); 
        }
        else
        {
            n裤子 = 0;
        }

        var allData = 皮肤数据.Instance.GetData();

        res.头发 = allData.FirstOrDefault(f =>f.Sex == sex && f.Type == 皮肤部位.头发 && f.Index == n头发).Mat;
        res.上衣 = allData.FirstOrDefault(f =>f.Sex == sex && f.Type == 皮肤部位.上衣 && f.Index == n上衣).Mat;
        res.裤子 = allData.FirstOrDefault(f =>f.Sex == sex && f.Type == 皮肤部位.裤子 && f.Index == n裤子).Mat;

        var list装饰 = 装饰.List二进制().Select(s=>int.Parse(s)).ToList();
        res.装饰详情 = list装饰;
        return res;
    }

    public static 人 Get主角()
    {
        var obj = GameObject.FindWithTag("Player");
        return obj.GetComponent<人>();
    }
}
